package main

import (
	"fmt"
	"gitee.com/changzer/zink/zink/ziface"
	"gitee.com/changzer/zink/zink/znet"
)

// ping test 自定义路由
type PingRouter struct {
	znet.BaseRouter
}

// 在处理conn业务的主方法Hook
func (p *PingRouter) Handle(request ziface.IRequest) {
	fmt.Printf("Call Router Handle...\n")
	// 先读取客户端的数据，再回写ping...ping...ping
	fmt.Printf("recv from client: msgId=%d, data=%s\n", request.GetMsgId(), request.GetData())
	err := request.GetConnection().SendMsg(1, []byte("ping...ping...ping"))
	if err != nil {
		fmt.Println(err)
	}
}

func main() {
	// 1. 初始化
	s := znet.NewServer("[zink V0.5]")
	s.AddRouter(&PingRouter{})
	// 2. 启动服务
	s.Serve()
	// 3. 注册路由

	// 4. 启动服务
}
